One of the greatest infrastructure challenges in organizations today is the reliance on software systems created and maintained over a period of time much longer than the anticipated lifespan. Many of these systems were created with numerous limitations and restrictions due to technological restraints of the time period. Over time, technology has rapidly improved and many of these systems have become outdated and inefficient. As a result, many organizations are looking for a viable approach to modernize their legacy systems.
Past attempts at legacy application modernization have generally included direct hardware or software updates and/or conversions. A first approach to legacy application modernization involves moving system software from old hardware to new hardware. One problem with this approach is that the flaws arising from the original restrictions and limitations built into the legacy application remain in the modernized software. This approach generally lacks analysis or improvement of the legacy software.
Another approach to legacy application modernization involves performing a line by line conversion of legacy source code into a new programming language. Although the converted legacy software may have new advantages as a result of the language conversion, obsolete or inefficient functionality may still remain in the application. This approach may improve application software, but still lacks any substantial analysis or improvement of functionality and efficiency.
Yet another approach of legacy application modernization can be to develop a completely new application. However, in most instances this approach is not viable due to extreme cost and time requirements.